﻿using System;
using System.Collections.Generic;

namespace SharpSqlAnalyzer.nodes.mdx
{
	// Token: 0x020003E3 RID: 995
	public class TMdxIdentifierNode : TMdxExpNode
	{
		// Token: 0x170008E4 RID: 2276
		// (get) Token: 0x06002790 RID: 10128 RVA: 0x0033BA9C File Offset: 0x00339C9C
		public override EMdxDataType MdxDataType
		{
			get
			{
				return EMdxDataType.Member;
			}
		}

		// Token: 0x170008E5 RID: 2277
		// (get) Token: 0x06002791 RID: 10129 RVA: 0x0033BA9F File Offset: 0x00339C9F
		public virtual List<IMdxIdentifierSegment> Segments
		{
			get
			{
				return this.segments;
			}
		}

		// Token: 0x06002792 RID: 10130 RVA: 0x0033BAA7 File Offset: 0x00339CA7
		public override void init(object segment)
		{
			this.segments.Add((IMdxIdentifierSegment)segment);
		}

		// Token: 0x06002793 RID: 10131 RVA: 0x0033BABA File Offset: 0x00339CBA
		public TSourceToken fetchStartToken(List<TParseTreeNode> nodes)
		{
			if (nodes.Count > 0)
			{
				return nodes[0].startToken;
			}
			return null;
		}

		// Token: 0x170008E6 RID: 2278
		// (get) Token: 0x06002794 RID: 10132 RVA: 0x0033BAD3 File Offset: 0x00339CD3
		public virtual List<IMdxIdentifierSegment> SegmentList
		{
			get
			{
				return this.segments;
			}
		}

		// Token: 0x06002795 RID: 10133 RVA: 0x0033BADB File Offset: 0x00339CDB
		public virtual void add(IMdxIdentifierSegment segment)
		{
			this.segments.Add(segment);
		}

		// Token: 0x06002796 RID: 10134 RVA: 0x0033BAE9 File Offset: 0x00339CE9
		public virtual void insertAt(IMdxIdentifierSegment segment, int index)
		{
			this.segments.Insert(index, segment);
		}

		// Token: 0x06002797 RID: 10135 RVA: 0x0033BAF8 File Offset: 0x00339CF8
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06002798 RID: 10136 RVA: 0x0033BB08 File Offset: 0x00339D08
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001DD3 RID: 7635
		private readonly List<IMdxIdentifierSegment> segments = new List<IMdxIdentifierSegment>();
	}
}
